
package com.itboy.weixin.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.itboy.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;


/**
 * 微信关注公众用户
 * @author gssong
 * @date 2021年7月3日17:30:28
 */
@Data
@TableName("wx_public_user")
@EqualsAndHashCode(callSuper = true)
public class WxPublicUser extends BaseEntity {
private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@TableId(type = IdType.ASSIGN_ID)
    private String id;


	/**
	 * 用户是否订阅该公众号标识，值为0时，代表此用户没有关注该公众号，拉取不到其余信息。
	 */
	private String subscribe;
	/**
	 * openid
	 */
	@JsonProperty("openid")
	@TableField(value = "open_id")
	private String openId;

	/**
	 * 微信昵称
	 */
	@JsonProperty("nickname")
	@TableField(value = "nick_name")
	private String nickName;

	/**
	 * 用户的性别，值为1时是男性，值为2时是女性，值为0时是未知
	 */
	@JsonProperty("sex")
	private int sex;

	/**
	 * 用户的语言，简体中文为zh_CN
	 */
	private String language;

	/**
	 * 用户所在城市
	 */
	private String city;

	/**
	 * 用户所在省份
	 */
	private String province;

	/**
	 * 用户所在国家
	 */
	private String country;

	/**
	 * 用户头像
	 */
	@JsonProperty("headimgurl")
	@TableField(value = "headimgurl")
	private String headImgUrl;

	/**
	 * 用户关注时间，为时间戳。如果用户曾多次关注，则取最后关注时间
	 */
	@JsonProperty("subscribe_time")
	@TableField(value = "subscribe_time")
	private Long subscribeTime;


	/**
	 * 返回用户关注的渠道来源，
	 * ADD_SCENE_SEARCH 公众号搜索，
	 * ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移，
	 * ADD_SCENE_PROFILE_CARD 名片分享，
	 * ADD_SCENE_QR_CODE 扫描二维码，
	 * ADD_SCENE_PROFILE_LINK 图文页内名称点击，
	 * ADD_SCENE_PROFILE_ITEM 图文页右上角菜单，
	 * ADD_SCENE_PAID 支付后关注，
	 * ADD_SCENE_WECHAT_ADVERTISEMENT 微信广告，
	 * ADD_SCENE_OTHERS 其他
	 */
	@JsonProperty("subscribe_scene")
	@TableField(value = "subscribe_scene")
	private String subscribeScene;


	/**
	 * 公众号运营者对粉丝的备注，公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
	 */
	private String remark;


	/**
	 * 订阅时间 long转date
	 */
	@TableField(exist = false)
	private Date subscribeTimeEx;

}
